package org.phantom.securityframework.api;

import java.util.List;

import org.phantom.securityframework.api.domain.Module;
import org.phantom.securityframework.api.domain.Platform;
import org.phantom.securityframework.api.domain.Subsystem;
/**
 * 子系统管理接口
 * @author david
 *
 */
public interface SubsystemManager {

	/**
	 * 获取子系统
	 * @param subsystemId
	 * @return
	 */
	Subsystem get(String subsystemId);
	/**
	 * 录入子系统
	 * @param subsystem
	 * @return
	 */
	Subsystem save(Subsystem subsystem);
	/**
	 * 获取子系统集合
	 * @return
	 */
	List<Subsystem> list();
	/**
	 * 录入模块
	 * @param module
	 * @return
	 */
	Module save(Module module);
	/**
	 * 关联子系统和模块
	 * @param subsystem
	 * @param module
	 */
	void relSubsystemModule(Subsystem subsystem,Module[] module);
	/**
	 * 取消子系统和模块关联
	 * @param subsystem
	 * @param module
	 */
	void unrelSubsystemModule(Subsystem subsystem,Module[] module);
	
	/**
	 * 关联平台和子系统
	 * @param platform
	 * @param subsystems
	 */
	void relPlatformSubsystem(Platform platform,Subsystem[] subsystems);
	/**
	 * 取消子系统和模块关联
	 * @param platformId
	 * @param subsystemIds
	 */
	void unrelPlatformSubsystem(String platformId,String[] subsystemIds);
	
}
